import os
import shutil
import argparse


def copy_svs_files(src_dir, dst_dir):
    # 确保目标目录存在
    os.makedirs(dst_dir, exist_ok=True)

    svs_count = 0
    for root, _, files in os.walk(src_dir):
        for file in files:
            if file.lower().endswith(".svs"):
                src_file = os.path.join(root, file)
                dst_file = os.path.join(dst_dir, file)

                print(f"Copying: {src_file} -> {dst_file}")
                shutil.copy2(src_file, dst_file)  # 保留元数据
                svs_count += 1

    print(f"\n✅ 共复制了 {svs_count} 个 .svs 文件到 {dst_dir}")


if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description="将指定目录中所有 .svs 文件复制到目标目录"
    )
    parser.add_argument(
        "--source", default="/mnt/data1/zzy/LNM/珠江医院/wsi", help="源目录路径"
    )
    parser.add_argument("--destination", default="",help="目标目录路径")

    args = parser.parse_args()

    if not os.path.isdir(args.source):
        print(f"❌ 源目录不存在: {args.source}")
        exit(1)

    copy_svs_files(args.source, args.destination)
